package com.hy.fangZhou.iot.controller;

import com.alibaba.fastjson.JSON;
import com.hy.fangZhou.iot.model.BoxData;
import com.hy.fangZhou.iot.model.dto.Parameter;
import com.hy.fangZhou.utils.RedisUtil;
import com.hy.fangZhou.utils.exception.Result;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@RestController
@RequestMapping("/iot")
public class IotController {

    @Resource
    private RedisUtil redisUtil;


    @PostMapping("/initialData")
    public Result initialData(@RequestBody Parameter parameter) throws InterruptedException {
        if (StringUtils.isBlank(parameter.getBoxId())) {
            return new Result<>(false, "盒子不为空");
        }
/*      // 循环水箱温度
        redisUtil.hset(parameter.getBoxId(), "circulatingWaterTankTemperature", "0");
        // 循环水箱入水口温度
        redisUtil.hset(parameter.getBoxId(), "circulatingWaterTankInletTemperature", "0");
        // 冷却塔进水温度
        redisUtil.hset(parameter.getBoxId(), "coolingTowerInletTemperature", "0");
        // 冷却塔出水温度
        redisUtil.hset(parameter.getBoxId(), "coolingTowerOutletTemperature", "0");
        // 热水箱温度
        redisUtil.hset(parameter.getBoxId(), "hotWaterTankTemperature", "0");
        // 填料温度
        redisUtil.hset(parameter.getBoxId(), "fillingTemperature", "0");
        // 冷却塔循环水流量
        redisUtil.hset(parameter.getBoxId(), "coolingTowerWaterFlowRate", "0");
        // 干球温度目标值
        redisUtil.hset(parameter.getBoxId(), "dryBulbTemperatureTarget", "0");
        // 温球温度目标值
        redisUtil.hset(parameter.getBoxId(), "wetBulbTemperatureTarget", "0");
        // 循环水箱液位
        redisUtil.hset(parameter.getBoxId(), "circulatingWaterTankLiquidLevel", "0");
        // 冷却塔进水口压力
        redisUtil.hset(parameter.getBoxId(), "coolingTowerInletPressure", "0");
        // 冷却塔出水口压力
        redisUtil.hset(parameter.getBoxId(), "coolingTowerOutletPressure", "0");
        // 小循环泵备用流量
        redisUtil.hset(parameter.getBoxId(), "smallCirculationPumpBackupFlowRate", "0");
        // 小循环泵备用压力
        redisUtil.hset(parameter.getBoxId(), "smallCirculationPumpBackupPressure", "0");
        // 加热泵运行频率
        redisUtil.hset(parameter.getBoxId(), "heatingPumpOperatingFrequency", "0");
        // 加热泵运行电流
        redisUtil.hset(parameter.getBoxId(), "heatingPumpOperatingCurrent", "0");
        // 加热泵运行功率
        redisUtil.hset(parameter.getBoxId(), "heatingPumpOperatingPower", "0");
        // 循环泵运行频率
        redisUtil.hset(parameter.getBoxId(), "circulationPumpOperatingFrequency", "0");
        // 循环泵运行电流
        redisUtil.hset(parameter.getBoxId(), "circulationPumpOperatingCurrent", "0");
        // 循环泵运行功率
        redisUtil.hset(parameter.getBoxId(), "circulationPumpOperatingPower", "0");
        // A相电流
        redisUtil.hset(parameter.getBoxId(), "phaseACurrent", "0");
        // B相电流
        redisUtil.hset(parameter.getBoxId(), "phaseBCurrent", "0");
        // C相电流
        redisUtil.hset(parameter.getBoxId(), "phaseCCurrent", "0");
        // Uab线电压
        redisUtil.hset(parameter.getBoxId(), "lineVoltageUab", "0");
        // Ubc线电压
        redisUtil.hset(parameter.getBoxId(), "lineVoltageUbc", "0");
        // Uca线电压
        redisUtil.hset(parameter.getBoxId(), "lineVoltageUca", "0");
        // A相有功功率
        redisUtil.hset(parameter.getBoxId(), "phaseAActivePower", "0");
        // B相有功功率
        redisUtil.hset(parameter.getBoxId(), "phaseBActivePower", "0");
        // C相有功功率
        redisUtil.hset(parameter.getBoxId(), "phaseCActivePower", "0");
        // 合相有功功率
        redisUtil.hset(parameter.getBoxId(), "totalActivePower", "0");
        // A相无功功率
        redisUtil.hset(parameter.getBoxId(), "phaseAReactivePower", "0");
        // B相无功功率
        redisUtil.hset(parameter.getBoxId(), "phaseBReactivePower", "0");
        // C相无功功率
        redisUtil.hset(parameter.getBoxId(), "phaseCReactivePower", "0");
        // 合相无功功率
        redisUtil.hset(parameter.getBoxId(), "totalReactivePower", "0");
        // A相视在功率
        redisUtil.hset(parameter.getBoxId(), "phaseAApparentPower", "0");
        // B相视在功率
        redisUtil.hset(parameter.getBoxId(), "phaseBApparentPower", "0");
        // C相视在功率
        redisUtil.hset(parameter.getBoxId(), "phaseCApparentPower", "0");
        // 合相视在功率
        redisUtil.hset(parameter.getBoxId(), "totalApparentPower", "0");
        // 合相功率因数
        redisUtil.hset(parameter.getBoxId(), "totalPowerFactor", "0");
        // 冷却风机运行频率
        redisUtil.hset(parameter.getBoxId(), "coolingFanOperatingFrequency", "0");
        // 冷却风机运行电流
        redisUtil.hset(parameter.getBoxId(), "coolingFanOperatingCurrent", "0");
        // 冷却风机运行功率
        redisUtil.hset(parameter.getBoxId(), "coolingFanOperatingPower", "0");
        // 喷淋泵运行频率
        redisUtil.hset(parameter.getBoxId(), "sprayPumpOperatingFrequency", "0");
        // 喷淋泵运行电流
        redisUtil.hset(parameter.getBoxId(), "sprayPumpOperatingCurrent", "0");
        // 喷淋泵运行功率
        redisUtil.hset(parameter.getBoxId(), "sprayPumpOperatingPower", "0");
        // 集水槽温度
        redisUtil.hset(parameter.getBoxId(), "waterCollectionTankTemperature", "0");
        // 工频循环泵
        redisUtil.hset(parameter.getBoxId(), "frequencyConversionCirculationPumpOperating", "0");
        // 变频循环泵
        redisUtil.hset(parameter.getBoxId(), "variableFrequencyCirculationPumpOperating", "0");
        // 加热泵
        redisUtil.hset(parameter.getBoxId(), "heatingPumpOperating", "0");
        // 冷却风机
        redisUtil.hset(parameter.getBoxId(), "coolingFanOperating", "0");
        // 喷淋泵
        redisUtil.hset(parameter.getBoxId(), "sprayPumpOperating", "0");
        // 总电能度数
        redisUtil.hset(parameter.getBoxId(), "totalEnergy", "221.7");*/

        BoxData boxData = JSON.parseObject(JSON.toJSONString(redisUtil.hmget(parameter.getBoxId())),  BoxData.class);
        return new Result<>(true, boxData);
    }
}
